home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD022b.dsk / FULL FATHOM FIVE.bas < prev    next >
BASIC Source File  |  2003-06-12  |  10KB  |  199 lines

  1. 10 I = J = SS = T = S = M = SK = TM
  2. 20  PRINT  CHR$(4);"OPEN FATHOM SCORE,L10"
  3. 30  PRINT  CHR$(4);"READ FATHOM SCORE,R1"
  4. 40  INPUT HS
  5. 50  PRINT  CHR$(4);"CLOSE FATHOM SCORE"
  6. 500  DIM XDC(5),YDC(5)
  7. 510  DIM XT(5),YT(5),XS(5),YS(5)
  8. 800 D = 0:S = 0:T = 0:OO = 0
  9. 810 YS(1) = 80:YS(2) = 60:YS(3) = 140:YS(4) = 100:YS(5) = 120
  10. 820  FOR I = 1 TO 10
  11. 830 R1 =  INT(5 * RND(1)) +1:R2 =  INT(5 * RND(1)) +1
  12. 840 TEMP = YS(R1):YS(R1) = YS(R2):YS(R2) = TEMP
  13. 850  NEXT I
  14. 900  GOSUB 5000
  15. 1000  REM  MOVE SHIP
  16. 1020 P =  PDL(0): IF P <120  THEN 1100
  17. 1040  IF P >134  THEN 1200
  18. 1060  GOTO 1500
  19. 1100  REM  MOVE SHIP LEFT
  20. 1110  IF SS <12  THEN 1140
  21. 1115 NS =  INT((120 -P)/10)
  22. 1120  HCOLOR= 0: DRAW 1 AT SS,20:SS = SS -NS: HCOLOR= 3: DRAW 1 AT SS,20
  23. 1140  GOTO 1500
  24. 1200  REM  MOVE SHIP RIGHT
  25. 1210  IF SS >240  THEN 1500
  26. 1215 NS =  INT((P -134)/10)
  27. 1220  HCOLOR= 0: DRAW 1 AT SS,20:SS = SS +NS: HCOLOR= 3: DRAW 1 AT SS,20
  28. 1500  REM  SHIP FIRE?
  29. 1510  IF D >5  THEN 2000
  30. 1520 P =  PEEK( -16287): IF P < = 127  THEN 2000
  31. 1530  POKE  -16368,0
  32. 1540  HCOLOR= 3: DRAW 5 AT SS +15,30
  33. 1560 D = D +1
  34. 1570  FOR I = 1 TO 5
  35. 1572  IF XDC(I) = 0  THEN M = I:I = 5
  36. 1575  NEXT I
  37. 1580 XDC(M) = SS +15:YDC(M) = 30
  38. 2000  REM  MOVE SUBS
  39. 2010  IF S = 0  THEN 2500
  40. 2020  FOR I = 1 TO 5
  41. 2025  IF XS(I) = 0  THEN 2200
  42. 2030  HCOLOR= 0:SH = 2.5 -.5 *DS(I): DRAW SH AT XS(I),YS(I)
  43. 2031  IF  RND(1) <.06  OR  RND(1) >.94  THEN DS(I) =  -1 *DS(I)
  44. 2040 XS(I) = XS(I) +DS(I) *5
  45. 2060  IF XS(I) <10  THEN DS(I) =  -1 *DS(I):XS(I) = 10
  46. 2080  IF XS(I) >255  THEN DS(I) =  -1 *DS(I):XS(I) = 255
  47. 2100  HCOLOR= 6:SH = 2.5 -.5 *DS(I): DRAW SH AT XS(I),YS(I)
  48. 2200  NEXT I
  49. 2500  REM  MOVE WEAPONRY
  50. 2520  IF D = 0  THEN 2820
  51. 2540  FOR I = 1 TO 5
  52. 2545  IF XDC(I) = 0  THEN 2800
  53. 2550  HCOLOR= 0: DRAW 5 AT XDC(I),YDC(I)
  54. 2560 YDC(I) = YDC(I) +10
  55. 2580  HCOLOR= 3: DRAW 5 AT XDC(I),YDC(I)
  56. 2600  IF YDC(I) <141  THEN 2800
  57. 2620  HCOLOR= 0: DRAW 5 AT XDC(I),YDC(I):XDC(I) = 0:D = D -1
  58. 2800  NEXT I
  59. 2820  IF T = 0  THEN 3000
  60. 2840  FOR I = 1 TO 5
  61. 2850  IF XT(I) = 0  THEN 2990
  62. 2860  HCOLOR= 0: DRAW 6 AT XT(I),YT(I):YT(I) = YT(I) -10: HCOLOR= 3: DRAW 6 AT XT(I),YT(I)
  63. 2990  NEXT I
  64. 3000  REM  SHIP HIT?
  65. 3020  FOR I = 1 TO 5
  66. 3030  IF XT(I) = 0  THEN 3190
  67. 3040  IF YT(I) >30  THEN 3190
  68. 3050  IF  ABS(SS -XT(I) +13) >14  THEN 3100
  69. 3055 HT = XT(I)
  70. 3060  HCOLOR= 5: DRAW 4 AT HT,21::Q = 200:E = 100: GOSUB 10000: DRAW 4 AT HT,16: GOSUB 10000: DRAW 4 AT HT -5,12: GOSUB 10000: DRAW 4 AT HT +2,9
  71. 3080 OO = 1:I = 5: GOTO 3190
  72. 3100  HCOLOR= 0: DRAW 6 AT XT(I),YT(I):T = T -1
  73. 3120  HCOLOR= 6: DRAW 4 AT XT(I),19: FOR BB = 1 TO 100: NEXT BB
  74. 3140  HCOLOR= 0: DRAW 4 AT XT(I),19:XT(I) = 0
  75. 3190  NEXT I
  76. 3195  IF OO = 1  THEN  HTAB 11: FLASH : PRINT "SHIP DESTROYED!": NORMAL : GOTO 6000
  77. 3200  REM  SUB HIT?
  78. 3205  IF D = 0  OR S = 0  THEN 3500
  79. 3210  FOR I = 1 TO 5
  80. 3220  IF XS(I) = 0  THEN 3490
  81. 3230  FOR J = 1 TO 5
  82. 3240  IF XDC(J) = 0  THEN 3480
  83. 3260  IF YS(I) < >YDC(J)  THEN 3480
  84. 3280  IF  ABS(XDC(J) -XS(I) -9) >10  THEN 3480
  85. 3300  HCOLOR= 5:SH = 2.5 -.5 *DS(I): DRAW SH AT XS(I),YS(I)
  86. 3310 SC = SC +1: VTAB 23: HTAB 25: PRINT "SUB HITS: ": HTAB 35: VTAB 23: INVERSE : PRINT SC: NORMAL 
  87. 3320 Q = 250:E = 50: GOSUB 10000
  88. 3340  HCOLOR= 0: DRAW 5 AT XDC(J),YDC(J):XDC(J) = 0:D = D -1
  89. 3360  DRAW SH AT XS(I),YS(I):XS(I) = 0:S = S -1
  90. 3480  NEXT J
  91. 3490  NEXT I
  92. 3500  REM  SUB FIRE?
  93. 3520  IF S = 0  THEN 4000
  94. 3540  FOR I = 1 TO 5
  95. 3560  IF XS(I) = 0  THEN 3900
  96. 3580  IF XT(I) >0  THEN 3900
  97. 3600  IF  ABS(SS -XS(I)) >15 +YS(I)/5  THEN 3900
  98. 3610  IF  RND(1) >.8  THEN 3900
  99. 3620 XT(I) = XS(I) +10:YT(I) = YS(I) -10
  100. 3640  HCOLOR= 3: DRAW 6 AT XT(I),YT(I)
  101. 3660 T = T +1
  102. 3900  NEXT I
  103. 4000  REM   SUB APPEAR?
  104. 4020  IF S >4  THEN 4500
  105. 4040 R =  RND(1): IF R >.3  AND R <SK  THEN 4057
  106. 4050  IF S = 0  THEN 4057
  107. 4055  GOTO 4500
  108. 4057  FOR I = 1 TO 5: IF XS(I) = 0  THEN M = I:I = 5
  109. 4058  NEXT I
  110. 4060 S = S +1:DS(M) =  -1 ^( RND(1) <.5)
  111. 4080  IF DS(M) =  -1  THEN XS(M) = 250
  112. 4100  IF DS(M) = 1  THEN XS(M) = 15
  113. 4120  HCOLOR= 6:SH = 2.5 -.5 *DS(M): DRAW SH AT XS(M),YS(M)
  114. 4200  GOTO 4500
  115. 4500  REM   SONAR BLIP
  116. 4520 Q = 150:E = 10: GOSUB 10000
  117. 4530 Q = 120:E = 10: GOSUB 10000
  118. 4540 TM = TM +1: VTAB 23: HTAB 3: PRINT "TIME :": VTAB 23: HTAB 9: INVERSE : PRINT TM: NORMAL 
  119. 4560  IF TM =  VAL(TA$)  THEN 6000
  120. 4580  GOTO 1000
  121. 5000 D$ = "<CTRL-D>": REM   CTRL D
  122. 5010  IF  PEEK(770) = 77  THEN 5025
  123. 5015  POKE 770,77
  124. 5020  PRINT D$;"BLOAD FATHOM-X,A16384"
  125. 5025  GOSUB 32000
  126. 5030  POKE 232,0: POKE 233,64
  127. 5032  TEXT 
  128. 5033  GOSUB 13000: VTAB 21: INPUT "SELECT A SKILL LEVEL (1=EASY...8=LETHAL) ";SK
  129. 5034  VTAB 23: INPUT "LENGTH OF GAME (100-500 'SECONDS') ";TA$
  130. 5035 LE = SK
  131. 5036  IF SK <1  OR SK >8  THEN 5033
  132. 5038 SK = .31 +.01 *(1.7 ^(SK -1))
  133. 5040  HOME : HGR 
  134. 5050  ROT= 0: SCALE= 1
  135. 5060  HCOLOR= 6: HPLOT 0,29 TO 279,29
  136. 5070  HCOLOR= 3
  137. 5080  DRAW 1 AT 130,20
  138. 5090 SS = 130
  139. 5095 SC = 0:TM = 0
  140. 5100  VTAB 21: HTAB 3: PRINT "HIT PDL (0) TO FIRE DEPTH CHARGE"
  141. 5105  VTAB 23: HTAB 14: PRINT "LEVEL ";LE
  142. 5110  VTAB 23: HTAB 25: PRINT "SUB HITS: ": HTAB 35: VTAB 23: INVERSE : PRINT SC: NORMAL 
  143. 5120  RETURN 
  144. 6000  HTAB 15: PRINT "GAME OVER!": GET ROBERT$: PRINT ROBERT$: PRINT : PRINT "WANT TO PLAY AGAIN? Y/N ": GET ROBERT$: PRINT ROBERT$
  145. 6010  IF HS >SC  THEN 6030
  146. 6020  IF HS <SC  THEN HS = SC
  147. 6030  PRINT  CHR$(4);"OPEN FATHOM SCORE,L10"
  148. 6040  PRINT  CHR$(4);"WRITE FATHOM SCORE, R1"
  149. 6045  PRINT HS
  150. 6050  PRINT  CHR$(4);"CLOSE FATHOM SCORE"
  151. 6060  IF ROBERT$ = "Y"  THEN  RUN 10
  152. 6070  PRINT : PRINT  CHR$(4)"RUNMENU"
  153. 10000  POKE 776,Q: POKE 777,E: CALL 778: RETURN 
  154. 13000  HOME : VTAB 1: PRINT "FATHOM -- THE SUBMARINE WARFARE GAME"
  155. 13005  PRINT "---------------------------------------"
  156. 13007  HTAB 5: PRINT "ORIGINALLY BY JIM HILGER"
  157. 13008  HTAB 5: PRINT "MADE BETTER BY ROBERT MOSKOWITZ"
  158. 13010  VTAB 7: PRINT "USE GAME PADDLE (0) FOR <= => & SPEED": PRINT "   CONTROL OF YOUR SUB DESTROYER"
  159. 13020  PRINT : PRINT "HIT PDL (0) BUTTON TO LAUNCH A ": PRINT "   DEPTH CHARGE "
  160. 13030  PRINT : PRINT "WATCH OUT FOR THOSE TRICKY SUBS": PRINT "   AND THEIR TORPEDOES!"
  161. 13040  PRINT : PRINT "PREVIOUS HIGH SCORE HAS BEEN ";HS
  162. 32000  POKE 776,255: POKE 777,255: POKE 778,173: POKE 779,48: POKE 780,192: POKE 781,136: POKE 782,208: POKE 783,5: POKE 784,206: POKE 785,9: POKE 786,3: POKE 787,240
  163. 32010  POKE 788,9: POKE 789,202: POKE 790,208: POKE 791,245: POKE 792,174: POKE 793,8: POKE 794,3: POKE 795,76: POKE 796,10: POKE 797,3: POKE 798,96: RETURN 
  164. 267 p<CTRL-A> HIMEM: <CTRL-A> LOAD <CTRL-A><CTRL-I><CTRL-I><CTRL-I><CTRL-I>)<CTRL-I><CTRL-I><CTRL-I><CTRL-I>)<CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-_>;<CTRL-_>?<CTRL-[><CTRL-_><CTRL-[><CTRL-[><CTRL-[><CTRL-S><CTRL-I><CTRL-I><CTRL-I><CTRL-I>)<CTRL-I>-)<CTRL-M>)<CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-Q>;<CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-_>???<CTRL-_><CTRL-_><CTRL-[><CTRL-[><CTRL-[><CTRL-S>)-<CTRL-M>)-------<CTRL-I><CTRL-I>)<CTRL-Q><CTRL-[>;<CTRL-[><CTRL-[>;??????<CTRL-[><CTRL-[><CTRL-_><CTRL-S>--------------5<CTRL-[>?????????????<CTRL-W><CTRL-I>------------<CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-S>
  165. 2313 <CTRL-I>-<CTRL-I><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[>;<CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-S><CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-M><CTRL-I><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[>;??<CTRL-[><CTRL-[><CTRL-[><CTRL-S><CTRL-I><CTRL-I><CTRL-I><CTRL-I>--<CTRL-M><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[>???<CTRL-_><CTRL-[><CTRL-[><CTRL-S>---------5;???????<CTRL-[>7<CTRL-I><CTRL-I>)-----<CTRL-M><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-S>
  166. 10505 <CTRL-M><CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[>;<CTRL-[><CTRL-[><CTRL-[><CTRL-S><CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-M><CTRL-I><CTRL-I><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[>;??<CTRL-[><CTRL-[><CTRL-S><CTRL-I><CTRL-I><CTRL-I>--<CTRL-M><CTRL-I><CTRL-I><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[>???<CTRL-_><CTRL-[><CTRL-S>---------5?<CTRL-[>???????<CTRL-W><CTRL-I>)-----<CTRL-M><CTRL-I><CTRL-Q><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-[><CTRL-S>
  167. 2313 <CTRL-Q><CTRL-[><CTRL-_><CTRL-[><CTRL-[><CTRL-S><CTRL-I><CTRL-M><CTRL-I><CTRL-I><CTRL-Q><CTRL-[>;<CTRL-[>;<CTRL-S><CTRL-M>)<CTRL-I><CTRL-M>1;<CTRL-[><CTRL-_><CTRL-_><CTRL-W><CTRL-I><CTRL-M>-)<CTRL-Q><CTRL-[>?<CTRL-[>?<CTRL-S><CTRL-I>)-<CTRL-M><CTRL-Q><CTRL-[><CTRL-[>?<CTRL-[><CTRL-S>
  168. 15130 <CTRL-S><CTRL-I><CTRL-M><CTRL-Z>?<CTRL-W>-->?7--<CTRL-F>
  169. 16154 <CTRL-W>-->?7<CTRL-I><CTRL-M><CTRL-Z>?<CTRL-W>-)<CTRL-F>
  170. 34  SCRN( <CTRL-Q> POP <CTRL-S> GOSUB 32000
  171. 5030  POKE 232,0: POKE 233,64
  172. 5032  TEXT 
  173. 5033  GOSUB 13000: VTAB 21: PRINT "SELECT A SKILL LEVEL (1=EASY...8=LETHAL)"
  174. 5034  VTAB 23: INPUT "LEVEL ";SK
  175. 5035 LE = SK
  176. 5036  IF SK <1  OR SK >8  THEN 5033
  177. 5038 SK = .31 +.01 *(1.7 ^(SK -1))
  178. 5040  HOME : HGR 
  179. 5050  ROT= 0: SCALE= 1
  180. 5060  HCOLOR= 6: HPLOT 0,29 TO 279,29
  181. 5070  HCOLOR= 3
  182. 5080  DRAW 1 AT 130,20
  183. 5090 SS = 130
  184. 5095 SC = 0:TM = 0
  185. 5100  VTAB 21: HTAB 3: PRINT "HIT ANY KEY TO FIRE DEPTH CHARGE"
  186. 5105  VTAB 23: HTAB 14: PRINT "LEVEL ";LE
  187. 5110  VTAB 23: HTAB 25: PRINT "SUB HITS: ";SC
  188. 5120  RETURN 
  189. 6000  HTAB 15: PRINT "GAME OVER!": END 
  190. 10000  POKE 776,Q: POKE 777,E: CALL 778: RETURN 
  191. 13000  HOME : VTAB 2: PRINT "FATHOM -- THE SUBMARINE WARFARE GAME"
  192. 13005  PRINT "---------------------------------------"
  193. 13007  HTAB 5: PRINT "BY JIM HILGER"
  194. 13010  VTAB 10: PRINT "USE GAME PADDLE DIAL TO STEER ": PRINT "YOUR BATTLESHIP."
  195. 13020  PRINT : PRINT "HIT ANY KEY TO LAUNCH A DEPTH": PRINT "CHARGE."
  196. 13030  PRINT : PRINT "WATCH OUT FOR THOSE TORPEDOES!"
  197. 13040  RETURN 
  198. 32000  POKE 776,255: POKE 777,255: POKE 778,173: POKE 779,48: POKE 780,192: POKE 781,136: POKE 782,208: POKE 783,5: POKE 784,206: POKE 785,9: POKE 786,3: POKE 787,240
  199. 32010  POKE 788,9: POKE 789,202: POKE 790,208: POKE 791,245: POKE 792,174: POKE 793,8: POKE 794,3: POKE 795,76: POKE 796,10: POKE 797,3: POKE 798,96: RETURN